/**
 * \file TesteurPiece.cpp
 * \brief Ce fichier contient les tests unitaires de la classe Piece
 * \author Pierre-Marc Levasseur
 * \date juin 2014
 *
 */

#include<gtest/gtest.h>
#include"Piece.h"

using namespace std;
using namespace TP1;

TEST(Piece, PieceConstructeurDefaut_casNormal_PieceSansNom)
{
	Piece p;

	ASSERT_EQ("", p.getNom());
}

TEST(Piece, PieceConstructeurString_casNormal_PieceAvecLeBonNom)
{
	Piece p("piece1");

	ASSERT_EQ("piece1", p.getNom());
}

TEST(Piece, setParcourue_casNormal_ParcourueEstEgalATrue)
{
	Piece p;

	p.setParcourue(true);

	ASSERT_EQ(true, p.getParcourue());
}

TEST(Piece, setParcourue_deuxModifications_ParcourueEstEgalAFalse)
{
	Piece p;

	p.setParcourue(true);
	p.setParcourue(false);

	ASSERT_EQ(false, p.getParcourue());
}

TEST(Piece, PieceConstructeurCopie_casNormal_LesDeuxPiecesOntLeMemeNom)
{
	Piece p1("piece1");

	Piece p2(p1);

	ASSERT_EQ(p1.getNom(), p2.getNom());
}

TEST(Piece, PieceConstructeurCopie_casNormal_LesDeuxPiecesOntLaMemeValeurParcourue)
{
	Piece p1("piece1");
	p1.setParcourue(true);

	Piece p2(p1);

	ASSERT_EQ(p1.getParcourue(), p2.getParcourue());
}

TEST(Piece, ajoutePorte_ajouterUneSeulePorte_LaPorteEstDansLaListeDePortes)
{
	Piece p1;
	Porte porte;

	ASSERT_TRUE(p1.getPortes().estVideListePortes());

	p1.ajoutePorte(porte);

	ASSERT_EQ(1, p1.getPortes().tailleListePortes());
}
















